#include <cstdio>
#include <algorithm>
#include <cstring>
#include <set>
#include <map>
using namespace std;
const int N= 1000050;
int a[N];
int p;
int main(void){
    while(~scanf("%d",&p)){
        set<int> se;
        memset(a,0,sizeof(a));
        for(int i=0;i<p;i++){
            scanf("%d",&a[i]);    
            se.insert(a[i]);   
        }
        int n=se.size();
        //尺取法
        int s=0,t=0,num=0;
        map<int,int> cnt;
        int res=p;
        while(true){
            while(t<p && num<n){
                if(cnt[a[t++]]++==0){
                    num++;
                }
            }
            if(num<n){
                break;
            }
            res=min(res,t-s);
            if(--cnt[a[s++]]==0){
                num--;
            }
        }
        printf("%d\n",res);
    }
    return 0;
}